In designing modern processors, a converged core design enables a single core architecture (and microarchitecture) to be used across multiple product lines. For example a single core design can be used across several client and server product families, which differ in the number of cores being deployed, the maximum power consumed and the memory bandwidth and/or speed required.
Such a development model typically requires different non-core circuitry, often referred to as an uncore, that targets the different segments to customize the interconnect, cache and memory subsystem to fulfill segment-specific requirements. A simplified interface and protocol is provided across the core-uncore boundary, which allows low effort integration of core and uncore for each segment. This simplified interface means that the converged core and the various uncores are developed and optimized independently. As such, the interface has little to no ability to convey information across the boundary that can be exploited to deliver higher performance and/or lower power.